home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 11 / CU Amiga Magazine's Super CD-ROM 11 (1997)(EMAP Images)(GB)(Track 1 of 3)[!][issue 1997-06].iso / s / boxresize.pprx < prev    next >
Text File  |  1992-08-02  |  2KB  |  88 lines

  1. /* This Genie resizes boxes by a percentage factor and sets the margins, frame weight, offset and image scale accordingly. Type is not resized as this genie is for individual boxes, not linked chains. (See the separate TextResize genie).
  2. Written by Don Cox */
  3.  
  4.  
  5. signal on error
  6. signal on syntax
  7. address command
  8. call SafeEndEdit.rexx()
  9. call ppm_AutoUpdate(0)
  10. cr="0a"x
  11.  
  12. counter=0
  13.  
  14.  
  15. do forever
  16.     box=ppm_ClickOnBox("Click on boxes to be resized")
  17.     if box=0 then break
  18.     counter=counter+1
  19.     boxes.counter=box
  20.     call ppm_SelectBox(box)
  21. end
  22.  
  23. if counter=0 then exit_msg("No boxes selected")
  24.  
  25. percent = ppm_GetUserText(6,"Percentage of old size")
  26. if percent = "" then exit_msg("Aborted by User")
  27. if ~(datatype(percent,n)) then exit_msg("Invalid entry")
  28. factor = abs(percent/100)
  29. if factor>10 then factor = 10
  30. if factor<0.1 then factor = 0.1
  31.  
  32. currentunits=ppm_GetUnits()
  33. call ppm_SetUnits(1)
  34.  
  35.  
  36. do i=1 to counter
  37.     box=boxes.i
  38.  
  39.     framedata = ppm_GetBoxFrameData(box)
  40.     parse var framedata linecolor "0a"x fillcolor "0a"x lineweight "0a"x linepattern "0a"x fillpattern  
  41.     call ppm_SetBoxFrameData(box, linecolor, fillcolor, lineweight*factor, linepattern, fillpattern)
  42.  
  43.     margins = ppm_GetBoxMargins(box)
  44.     parse var margins mleft mtop mright mbottom
  45.     call ppm_SetBoxMargins(box,mleft*factor,mtop*factor, mright*factor, mbottom*factor)
  46.  
  47.     boxtype = upper(word(ppm_GetBoxInfo(box), 1))
  48.     /* if text, ask. Maybe set font size, line spacing, tabs, etc  */
  49.     howbig = ppm_GetBoxSize(box)
  50.     boxwidth = word(howbig,1)
  51.     boxheight = word(howbig,2)
  52.     call ppm_SetBoxSize(box, boxwidth*factor, boxheight*factor)
  53.  
  54.     boxscale = ppm_GetBoxScale(box)
  55.     Xscale = word(boxscale,1)
  56.     Yscale = word(boxscale,2)
  57.     call ppm_SetBoxScale(box,Xscale*factor, Yscale*factor)
  58.  
  59.     offsets = ppm_GetBoxOffset(box)
  60.     Xoffset = word(offsets,1)
  61.     Yoffset = word(offsets,2)
  62.     call ppm_SetBoxOffset(box, Xoffset*factor, Yoffset*factor)
  63.  
  64.     end
  65.  
  66. call ppm_SetUnits(currentunits)
  67.  
  68. call exit_msg()
  69.  
  70. end
  71.  
  72. error:
  73. syntax:
  74.     do
  75.     exit_msg("Genie failed due to error: "errortext(rc))
  76.     end
  77.  
  78. exit_msg:
  79.     do
  80.     parse arg message
  81.     if message ~= "" then
  82.     call ppm_Inform(1,message,"Resume")
  83.     call ppm_ClearStatus()
  84.     call ppm_AutoUpdate(1)
  85.     exit
  86.     end
  87.  
  88.